/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controladora;

import Entidades.Agencia;
import Entidades.Gerente;
import Persistencia.PersistenciaAgencia;
import Persistencia.PersistenciaoGerente;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.table.DefaultTableModel;
import telas.CadastrarGerenteView;
import telas.DiretorRegionalView;
import telas.InclusaoAgenciaView;
import telas.ManterAgenciaView;
import telas.VisualizarAgenciaView;

/**
 *
 * @author Thalyta
 */
public class ManterAgenciaPresenter {

    
    private ManterAgenciaView telaagencia ;
    private  PersistenciaAgencia agencias = new PersistenciaAgencia();
    
    public ManterAgenciaPresenter( ManterAgenciaView telaagencias) {
        telaagencia = telaagencias ;
        carregaAgencias(agencias.getAgencias(), telaagencia);
        telaagencia.getBtnCadastrar().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
              cadastrar();
               
            }
        });
        telaagencia.getBtnfechar().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
               fechar();
            }
        }); 
        telaagencia.getBtnEditar().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
              
              editar();
                
            }
        });
        telaagencia.getBtnvisualizar().addActionListener(new ActionListener() {

           @Override
           public void actionPerformed(ActionEvent e) {
               visualizar();
           }
           
           });
        telaagencia.getBtnExcluir().addActionListener(new ActionListener() {

           @Override
           public void actionPerformed(ActionEvent e) {
           excluir();
       
           }
       });
        
        telaagencia.getBtnMovimento().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
               movimento();
            }
        });
   
    telaagencia.setVisible(true);
    }
  
    public void movimento(){
    
             
    }  
      
   public void excluir() {
       
         Agencia a ;
        String codigo;
        String cidade ;
        String UF; 
      
        codigo= telaagencia.getTblAgencia().getValueAt(telaagencia.getTblAgencia().getSelectedRow(), 0).toString();
        cidade = telaagencia.getTblAgencia().getValueAt(telaagencia.getTblAgencia().getSelectedRow(), 1).toString();
        UF = telaagencia.getTblAgencia().getValueAt(telaagencia.getTblAgencia().getSelectedRow(), 0).toString();
        a = new Agencia(codigo,cidade,UF,null);
        agencias.excluirAgencia(a);
        agencias.gravaAgencia();
        carregaAgencias(agencias.getAgencias(), telaagencia);
        telaagencia.setVisible(true);
        
} 
   
   public void visualizar(){
       
       
        String codigo= telaagencia.getTblAgencia().getValueAt(telaagencia.getTblAgencia().getSelectedRow(), 0).toString();
        String cidade = telaagencia.getTblAgencia().getValueAt(telaagencia.getTblAgencia().getSelectedRow(), 1).toString();
        String UF = telaagencia.getTblAgencia().getValueAt(telaagencia.getTblAgencia().getSelectedRow(), 0).toString();
        String atual = telaagencia.getTblAgencia().getValueAt(telaagencia.getTblAgencia().getSelectedRow(), 2).toString();
        final VisualizarAgenciaView telaInclusao = new VisualizarAgenciaView();
     
        
       telaInclusao.getTxtCodigo().setText(codigo);
       telaInclusao.getTxtCidade().setText(cidade);
       
       telaInclusao.getTxtGerenteAtual().setText(atual);
       telaInclusao.setVisible(true);  
       PersistenciaoGerente gerentes = new PersistenciaoGerente();
       final Gerente gerente ;
      gerente =  gerentes.PesquisaAgencia(telaInclusao.getTxtGerenteAtual().toString());
      if(gerente == null){
       
          telaInclusao.getBtnDetalhes().setVisible(false);
       }
       else {
       
       telaInclusao.getBtnDetalhes().addActionListener(new ActionListener() {
                    
                   @Override
                   public void actionPerformed(ActionEvent e) {
                       
                       detalhes(gerente);
                       
                    }
               });
       
      }
             
        telaInclusao.getBtnFechar().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
               
               telaInclusao.setVisible(false);
            }
            
       
        });
          
      
           
       }
 
   public void editar(){
       
       
        String codigo= telaagencia.getTblAgencia().getValueAt(telaagencia.getTblAgencia().getSelectedRow(), 0).toString();
        String cidade = telaagencia.getTblAgencia().getValueAt(telaagencia.getTblAgencia().getSelectedRow(), 1).toString();
        String UF = telaagencia.getTblAgencia().getValueAt(telaagencia.getTblAgencia().getSelectedRow(), 0).toString();
        Agencia a = new Agencia(codigo,cidade,UF,null);
        
        
        agencias.excluirAgencia(a);
        agencias.gravaAgencia(); 
        
        
       InclusaoAgenciaView telaInclusao = new InclusaoAgenciaView();
       telaInclusao.getTxtCodigo().setText(codigo);
       telaInclusao.getTxtCidade().setText(cidade);
       telaInclusao.setVisible(true);
       CadastrarAgenciaPresenter controagencia = new CadastrarAgenciaPresenter(telaInclusao);
       telaagencia.setVisible(false);
       
       
} 
   
   public void fechar(){
       DiretorRegionalView telagerente = new DiretorRegionalView();
       DiretorRegionalPresenter dir = new DiretorRegionalPresenter(telagerente);
       telaagencia.setVisible(false);
} 
   
   public void cadastrar(){
       
       
 InclusaoAgenciaView telacadastro = new InclusaoAgenciaView();
 CadastrarAgenciaPresenter controagencia = new CadastrarAgenciaPresenter(telacadastro);
 
 this.telaagencia.setVisible(false);
                
}
   
   public void detalhes(Gerente b){
       
       
                  CadastrarGerenteView casgerentes = new CadastrarGerenteView();
                  casgerentes.getTxtnome().setText(b.getNome().toString());
                  casgerentes.getTxtDataNascimento().setText(b.getEndereço());
                  casgerentes.getTxtcpf().setText(b.getCPF());
                  casgerentes.getTxtNomeusuario().setText(b.getNomeusuario());
                  casgerentes.getTxtcodigoAgencia().setText(b.getAgencia().getCodigo());
                  casgerentes.setVisible(true);
                ;
                 CadastroGerentePresenter contgerentes = new CadastroGerentePresenter(casgerentes);
                
       
   }
   
   
   
    private void carregaAgencias(ArrayList a,ManterAgenciaView telaagencia ){
        
        
        DefaultTableModel tm = new DefaultTableModel(
                
            new Object[][]{},
            new String [] {"Código", "Cidade", "UF","Gerente Atual"}){
            
        @Override
        public boolean isCellEditable(int row, int col){
            return false;
        }
     };
       
     tm.setNumRows(0);
     
    for (int i = 0; i < a.size(); i++) {
            Agencia agencia = (Agencia) a.get(i);
            tm.addRow(new Object[]{agencia.getCodigo(), agencia.getCidade(),agencia.getUF(),agencia.getGerenteAtual().getNome()});
         
         
     }
    telaagencia.getTblAgencia().setModel(tm);
        
    }
    
    
    
}
